package com.kaifamiao.io.d0923;

import java.lang.reflect.Constructor;
import java.util.Arrays;

public class ReflectDemo {

    public static void main(String[] args) {
        Student obj = new Student(1, "admin", '男');

        // 获取 Class 对象
//        Class cla =  obj.getClass();
//        Class cla1 = Cloneable.class;
        try {
            Class cla = Class.forName("com.kaifamiao.io.d0923.Student");

            /*
                getConstructor(parameterTypes) 根据参数获取 public 构造
                getDeclaredConstructor(parameterTypes) 根据参数获取构造
                getConstructors()  获取所有 public 修饰的构造
                getDeclaredConstructors() 获取所有构造
             */
            Constructor constructor = cla.getConstructor(); // 无参构造
//            Constructor constructor = cla.getConstructor(String.class); // 有参构造
//            Constructor constructor = cla.getConstructor(int.class, String.class, char.class); // 有参构造
            System.out.println(constructor);

//            Constructor[] constructors = cla.getConstructors();
//            Constructor[] constructors1 = cla.getDeclaredConstructors();
//
//            Arrays.stream(constructors).forEach(System.out::println);
//
//            System.out.println("=======");
//            Arrays.stream(constructors1).forEach(System.out::println);


        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }

    }
}
